package com.yc.bitoperate;

/**
 * 位运算 demo
 */
public class BitOperate {

    public static void main(String[] args) {
//        shiftLeft();
//        unsignedShift();
        int2Binary(-5);
        int2Binary(1073741822);
        int2Binary(536870911);

    }

    private static void int2Binary(int num) {
        System.out.println(Integer.toBinaryString(num));
    }

    public static void shiftLeft(){
        // 5 -> 0000 0101
        // <<2  0001 0100
        //       16 + 4 = 20
        System.out.println(5 << 2);
    }

    public static void shiftRight(){
        // 5 -> 0000 0101
        // >>2  0000 0001
        //             =1
        System.out.println(5 >> 2);
    }

    public static void unsignedShift() {
        // -5 -> 1111 1[011]
        // >>>3 1111 1111  =-1
        // >>>2 1111 1110  =0
        System.out.println(-5 >>> 2);
    }
}
